1. Technical Field
The present invention relates generally to an improved data processing system, and in particular, to a method and apparatus for updating data. Still more particularly, the present invention provides a method and apparatus for updating data in a flash memory system.
2. Description of Related Art
Memory is a computer's workspace. Memory is an important resource because the amount of memory present determines the size and number of programs that can be running at the same time, as well as the amount of data that can be processed instantly. All program execution and data processing takes place in memory. The program's instructions are copied into memory from disk or tape and then extracted from memory into the control unit circuit for analysis and execution. The instructions direct the computer to input data into memory from a keyboard, disk, tape or communications channel. Memory also is used to store programs or instructions used to initialize or start up a computer.
For example, a basic input output system (BIOS) is an essential set of routines in a computer in which the BIOS is stored on a memory chip and provides an interface between the operating system and the hardware. The BIOS supports all peripheral technologies and internal services such as a real time clock. A BIOS is typically stored on a flash memory. A flash memory is one or more memory chips that can be rewritten and hold content without power. Other types of instructions that may be stored on a flash memory include operating systems and word processors.
Stored programs must periodically be updated to keep pace with new technologies. The updates are made to the flash memory, which allows the instructions stored on the memory to be upgraded via software. The memory size and configuration of a flash memory is important in applying updates. For example, a flash memory may contain 16 MBs of memory in which the configuration may be one 16 MB chip or two 8 MB chips. The identification of the configuration is important because when a boundary between one flash memory chip and another flash memory chip is crossed when updating software or writing instructions to the flash memory, the next chip must be told that an upgrade is being performed. Thus, if the configuration is unknown, the upgrading of software may be difficult or impossible to perform.
Currently, upgrade tools are directed towards specific flash memories in which the memory size and configuration is pre-set or hard coded in the tool. As a result, developers are required to develop and maintain the software upgrade tools for many types of system platforms, which potentially have different flash memory sizes. Such a requirement involves many man-hours to support the different versions of an upgrade tool. In addition to the use of resources, confusion may occur as to which flash update tool is appropriate for a particular platform. Additionally, existing systems may be upgraded to include additional flash memory. Existing tools are unable to know that such an upgrade in memory has occurred. Thus, an upgrade may not be applied because the tool assumes that insufficient memory is present even though an addition of more flash memory provides sufficient storage space for the upgrade.
Therefore, it would be advantageous to have an improved method, apparatus, and computer instructions for upgrading flash memories.